<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <!--<meta http-equiv="refresh" content="20">-->
    <title></title>
    <script src="Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="http://hq.sinajs.cn/list=sz002261" charset="gb2312"></script>
    <script type="text/javascript">
        var elements = hq_str_sz002261.split(",");

        var PERMISSON_GRANTED = 'granted';
        var PERMISSON_DENIED = 'denied';
        var PERMISSON_DEFAULT = 'default';

        Notification.requestPermission(function (res) {
            if (res === PERMISSON_GRANTED) {
                console.log('提醒开启成功！')
            }
        });
        //浏览器消息推送
        function createNotify(title, options) {

            if (Notification.permission === PERMISSON_GRANTED) {
                notify(title, options);
            } else {
                Notification.requestPermission(function (res) {
                    if (res === PERMISSON_GRANTED) {
                        notify(title, options);
                    }
                });
            }

            function notify($title, $options) {
                var notification = new Notification($title, $options);
            }
        }

        //动态加载js包
        function loadJS(url, callback) {

            var script = document.createElement('script'),

                fn = callback || function () { };

            script.type = 'text/javascript';



            //IE

            if (script.readyState) {

                script.onreadystatechange = function () {

                    if (script.readyState == 'loaded' || script.readyState == 'complete') {

                        script.onreadystatechange = null;

                        fn();

                    }

                };

            } else {

                //其他浏览器

                script.onload = function () {

                    fn();

                };

            }

            script.src = url;
            document.getElementsByTagName('head')[0].children[3].remove();
            document.getElementsByTagName('head')[0].appendChild(script);


        }




        var _time = 10,//定时秒数
            boval = 10,//波动值金额￥
            buy_num = 500,//买入股数
            buy_money = 7.72,//买入价格,0取开盘价,-1取昨收价
            _val = 100;//记录最近数据个数

        var intervalId,//定时器
            num = 0, //次数
            today_amount = 0,//今日盈亏
            maxVal = 0,
            minVal = 0;
        val = [];//值

        var zs_price = elements[2];//昨收
        var jk_price = elements[1];//今开
        var name = elements[0];
        var _interStatus = 0;//标识定时器是否开启；1开启 0关闭

        //$(document).ready(function () {
        //    intervalId = window.setInterval(star, 1000 * _time);


        //})

        function star() {

            elements = hq_str_sz002261.split(",");
            var _code = 'hq_str_' + $('#code').val();
            var a = $(this)[0].frames['' + _code];
            if (a != undefined) {
                elements = a.split(',');
            }
            if (document.title != elements[0]) {
                maxVal = 0;
                minVal = 0;
            }
            zs_price = elements[2];//昨收
            jk_price = elements[1];//今开
            document.title = elements[0];
            num++;
            var zx_price = elements[3];
            name = elements[0];
            buy_money = parseFloat($('#price').val()).toFixed(2);
            buy_num = parseInt($('#num').val());
            boval = parseFloat($('#boval').val()).toFixed(2);
            $('#kp_price').text(jk_price);
            $('#zs_price').text(zs_price);
            $('#fd').text((((zx_price / zs_price) - 1) * 100).toFixed(2));
            $('#fd_amount').text((zx_price - zs_price).toFixed(2));

            var no = num % _val;
            var preno = (num - 1) % _val;
            var startval = buy_money;
            if (buy_money == 0) {
                startval = jk_price;
            }
            else if (buy_money == -1) {
                startval = zs_price;
            }
            var tarval = ((parseFloat(zx_price) - startval) * buy_num).toFixed(2);
            val[no] = tarval;
            if (parseFloat(tarval) > parseFloat(maxVal) || maxVal == 0) maxVal = parseFloat(tarval);
            if (parseFloat(tarval) < parseFloat(minVal) || minVal == 0) minVal = parseFloat(tarval);
            if (num > 1) {
                if (Math.abs(val[no] - val[preno]) >= boval) {
                    var d = new Date();
                    today_amount = ((parseFloat(zx_price) - zs_price) * buy_num).toFixed(2);
                    var msg1 = '股价：' + zx_price + '；当前盈亏：' + tarval.toString() + '；最高；' + maxVal.toString() + '；最低：' + minVal.toString() + '；波动：' + (val[no] - val[preno]).toString();
                    console.log('时间：' + d.toLocaleString() + ';' + name + '第' + no.toString() + '次，最近2次波动大于' + boval.toString() + '，请留意动向！上次:' + val[preno].toString() + ';本次：' + val[no].toString() + '；波动：' + (val[no] - val[preno]).toString());
                    createNotify(name + '预警通知', { body: msg1 });
                }
            }
            today_amount = ((parseFloat(zx_price) - zs_price) * buy_num).toFixed(2);
            $('#real_price').text(zx_price);
            $('#real_amount').text(tarval);

            var msg = name + '当前股价：' + zx_price + '；当前盈亏：' + tarval.toString() + '；今日盈亏:' + today_amount.toString() + '；最高；' + maxVal.toString() + '；最低：' + minVal.toString();
            console.log(msg);

            var max_v = $('#maxValue').val();
            var min_v = $('#minValue').val();
            if (max_v != '0' && max_v != '') {
                if (parseFloat(zx_price) >= parseFloat(max_v)) { createNotify(name + '最大值预警通知', { body: '当前到达设置最高价位，建议卖出，当前股价：' + zx_price }); }
            }
            if (min_v != '0' && min_v != '') {
                if (parseFloat(zx_price) <= parseFloat(min_v)) { createNotify(name + '最小值预警通知', { body: '当前到达设置最低价位，建议买入，当前股价：' + zx_price }); }
            }

            //刷新接口
            loadJS('http://hq.sinajs.cn/list=' + $('#code').val(), function () {

            });

            var dt = new Date();
            if (dt.getHours() >= 15) {
                stop();
                console.log('股市15:00已停盘，监控自动停止！');
            }
        }

        function stop() {
            if (_interStatus == 1) {
                clearInterval(intervalId);
                _interStatus = 0;
                console.log('已停止监控');
            }
            else {
                console.log('已处于停止状态，无需重复操作！');
            }
        }
        function watch() {

            if (_interStatus == 0) {
                _interStatus = 1;
                console.log('监控已开启');

                intervalId = window.setInterval(star, 1000 * _time);
            }
            else {
                console.log('已处于监控状态，无需重复操作！');
            }
        }

    </script>
</head>

<body>
    <p>代码：<input id="code" value="sz002261" /></p>
    <p>买入价格：<input id="price" value="0" /><span>开盘价：</span><span id="kp_price">0.00</span>￥</p>
    <p>买入数量：<input id="num" value="100" /><span>昨收：</span><span id="zs_price">0.00</span>￥</p>
    <p>波动预警值：<input id="boval" value="10" /><span>幅度：</span><span id="fd">0.00</span>%；<span id="fd_amount">0.00</span>￥</p>
    <p>最大值警值：<input id="maxValue" value="0" /></p>
    <p>最小值警值：<input id="minValue" value="0" /></p>
    <p>当前股价：<span id="real_price" style="color:red">0.00</span></p>
    <p>当前盈亏：<span id="real_amount" style="color:red">0.00</span></p>
    <input type="button" value="监控" onclick="watch();" />
    <input type="button" value="停止" onclick="stop();" />

</body>
</html>
<!--
https://www.cnblogs.com/phpxuetang/p/4519446.html
    以大秦铁路（股票代码：601006）为例，如果要获取它的最新行情，只需访问新浪的股票数据
接口：
http://hq.sinajs.cn/list=sh601006
这个url会返回一串文本，例如：
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
这个字符串由许多数据拼接在一起，不同含义的数据用逗号隔开了，按照程序员的思路，顺序号从0开始。
0：”大秦铁路”，股票名字；
1：”27.55″，今日开盘价；
2：”27.25″，昨日收盘价；
3：”26.91″，当前价格；
4：”27.55″，今日最高价；
5：”26.20″，今日最低价；
6：”26.91″，竞买价，即“买一”报价；
7：”26.92″，竞卖价，即“卖一”报价；
8：”22114263″，成交的股票数，由于股票交易以一百股为基本单位，所以在使用时，通常把该值除以一百；
9：”589824680″，成交金额，单位为“元”，为了一目了然，通常以“万元”为成交金额的单位，所以通常把该值除以一万；
10：”4695″，“买一”申请4695股，即47手；
11：”26.91″，“买一”报价；
12：”57590″，“买二”
13：”26.90″，“买二”
14：”14700″，“买三”
15：”26.89″，“买三”
16：”14300″，“买四”
17：”26.88″，“买四”
18：”15100″，“买五”
19：”26.87″，“买五”
20：”3100″，“卖一”申报3100股，即31手；
21：”26.92″，“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30：”2008-01-11″，日期；
31：”15:05:32″，时间；
    -->
